<?php

//Clase que se encarga de las acciones del login
class acciones {

    //Para verificar si pago las cuotas
    private $pagoClub;
    private $pagoAnual;
    private $myResultado;

    //Contructor de la clase
    //Inicializo las variables
    function __construc($pagoClub, $pagoAnual) {
        $this->pagoClub = $pagoClub;
        $this->pagoAnual = $pagoAnual;
        $this->myResultado = "";
    }

    //Función que instacia la clase Funciones y retorna el objeto
    function func() {
        /* Agregamos las funciones */
        include "funciones.php";

        //Creo el objeto funciones
        $obj = new funciones;

        //Retorno el objeto
        return $obj;
    }

    //Función que se conecta a MySql Retornado la conexión
    // PARAMETROS: Conexión: Objeto conexión
    function conn($objFunc) {
        //Conecto a MySql
        $conexion = $objFunc->conexion();

        //Retorno la conexión
        return $conexion;
    }

    //Función que se desconecta de MySql 
    // PARAMETROS: función: Objeto funcion
    //			   Conexión: Conexión
    function dess($objFunc, $conexion) {
        //Cierro la conexión
        $objFunc->cerrarConn($conexion);
    }

    //Función que se encarga de verificar si existe el concursante
    //PARAMETROS: Licencia del concursante
    //            Conexión MySql
    function verifConcursante($conn, $licencia) {

        //Creo el query
        $sql = "SELECT * FROM socios WHERE licencia = '" . $licencia . "'";

        try {
            //Ejecuto la consulta
            $this->myResultado = mysql_query($sql, $conn);

            //Verifico si se ejecuto la consulta
            if (!$this->myResultado) {
                $mensaje = 'Consulta no válida: ' . mysql_error() . "\n";
                die($mensaje);
                return 0;
            }

            //Cuento los registros
            $ncount = mysql_num_rows($this->myResultado);

            //Verifico si esta
            if ($ncount == 0) {
                die("El usuario ingresado no es un socio activo");
                return 0;
            } else {
                return 1;
            }
        } catch (Exception $e) {
            //Informo el error
            die("Error al ejecutar la consulta " . mysql_error() . "\n");
            return 0;
        }
    }

    //Función que se encarga de verificar si el concursante pago el club
    function pago() {
        try {
            //Recorro la consulta
            while ($valor = mysql_fetch_object($this->myResultado)) {
                $cuotaAnual = $valor->pago;
                $cuotaClub = $valor->pagoclub;
            }

            //Verifico el valor de cuotaAnual
            if ($cuotaAnual == 1) {
                $this->pagoAnual = 'si';
            } else {
                $this->pagoAnual = 'no';
            }

            //Verifico el valor de cuotaClub
            if ($cuotaClub == 1) {
                $this->pagoClub = 'si';
            } else {
                $this->pagoClub = 'no';
            }

            //Verificamos si puede concursar
            //No pago ninguna cuota
            if (($this->pagoClub == 'no') && ($this->pagoAnual == 'no')) {
                die("Debe abonar las cuotas para concursar");
                return 0;
            }

            //Tiene que pagar la del club
            if (($this->pagoClub == 'si') && ($this->pagoAnual == 'no')) {
                die("Debe abonar la cuota a la federacion");
                return 0;
            }

            //Tiene que pagar la de la federación
            if (($this->pagoClub == 'no') && ($this->pagoAnual == 'si')) {
                die("Debe abonar la cuota del club");
                return 0;
            }

            //Tiene que pagar la de la federación
            if (($this->pagoClub == 'si') && ($this->pagoAnual == 'si')) {
                return 1;
            }
        } catch (Exception $e) {
            //Informo el error
            die("Error al verificar los pagos. " . mysql_error() . "\n");
            return 0;
        }
    }

    //Función que se encarga de insertar en la base de datos
    // PARAMETROS: $conn: Conexión a MySql
    //			   $licencia: Nº de lincencia
    //			   $apellido: Apellido de concursante
    //             $ejemplar: Ejemplar del concursante
    //			   $categ: Categoria de concursante
    //             $Club: Club del concursante
    function insertar($conn, $licencia, $apellido, $ejemplar, $categ, $club) {

        //Armo el query para saber si ya esta licencia en el concurso
        $sqlLic = "SELECT * FROM concursar WHERE licencia = '" . $licencia . "'";

        //Verifico si ya esta la licencia
        $resultLic = mysql_query($sqlLic, $conn);

        if (!$resultLic) {
            $mensaje = 'Consulta no valida. Motivo: ' . mysql_error() . "\n";
            die($mensaje);
            return 0;
        }

        //Verifico si se anoto en otro club
        if (mysql_num_rows($resultLic) > 0) {

            //Armo el query
            $sqlClub = "SELECT * FROM concursar WHERE licencia = '" . $licencia . "' AND club = '" . $club . "'";

            //Verifico si ya se anoto en un club
            $resultClub = mysql_query($sqlClub, $conn);

            if (!$resultClub) {
                $mensaje = 'Consulta no valida. Motivo: ' . mysql_error() . "\n";
                die($mensaje);
                return 0;
            }

            //Verifico si se anoto en otro club
            if (mysql_num_rows($resultClub) == 0) {
                die("No se puede anotar en el club : " . $club . " ,usted ya se encuentra anotado en otro club");
                return 0;
            }
        }

        //Obtengo el id mas alto
        $sql = "SELECT MAX(id) as id from concursar";

        //Ejecuto la consulta
        $result = mysql_query($sql, $conn);

        //Creo el array
        $arr = mysql_fetch_assoc($result);

        //Tomo el valor
        $id = $arr['id'];

        //Incremento en uno el valor
        $id++;

        //Libero memoria
        mysql_free_result($result);

        //Inserto el registro en la base de datos
        $sqlIns .= "INSERT INTO concursar (id, licencia, apellido, ejemplar, categoria, club) ";
        $sqlIns .= " values(' " . $id . "', '" . $licencia . "', '" . $apellido . "', '" . $ejemplar . "', '" . $categ . "', '" . $club . "')";

        //Ejecuto la consulta
        $result = mysql_query($sqlIns, $conn);

        //Verifico si se realizo la consulta bien
        if (!$result) {
            $mensaje = 'Consulta no valida. Motivo: ' . mysql_error() . "\n";
            die($mensaje);
            return 0;
        } else {
            return 1;
        }
    }

    //función que se encarga de cargar el combo 
    //con los datos de los clubes
    // PARAMETROS: $conexion: Recibe el objeto conexión
    function cargacomboCLub($conexion) {
        //Creo la consulta
        $sql = "SELECT * FROM club WHERE concursar = 1";

        //Ejecuto la consulta
        $results = mysql_query($sql, $conexion);

        //Verifico si se realizo la consulta bien
        if (!$results) {
            $mensaje = 'Error al eliminar el registro: ' . mysql_error() . "\n";
            die($mensaje);
        }

        //Creo un array que contendra los valores de la grilla
        $data = array();

        //Recorro la consulta
        while ($row = mysql_fetch_object($results)) {

            //Cargo el dato en el array
            $data [] = $row;
        }

        //Libero memoria
        mysql_free_result($results);

        //Paso el array
        return json_encode($data);
    }

    //función que se encarga de cargar el combo 
    //con los datos de las categorias
    // PARAMETROS: $conexion: Recibe el objeto conexión
    function cargacomboCateg($conexion) {
        //Creo la consulta
        $sql = "SELECT * FROM categoria";

        //Ejecuto la consulta
        $results = mysql_query($sql, $conexion);

        //Verifico si se realizo la consulta bien
        if (!$results) {
            $mensaje = 'Error al eliminar el registro: ' . mysql_error() . "\n";
            die($mensaje);
        }

        //Creo un array que contendra los valores de la grilla
        $data = array();

        //Recorro la consulta
        while ($row = mysql_fetch_object($results)) {

            //Cargo el dato en el array
            $data [] = $row;
        }

        //Libero memoria
        mysql_free_result($results);

        //Paso el array
        return json_encode($data);
    }

    //Funcion que se encarga de obtener datos del usuario
    //Verificando si ses un usuario admin o normal
    //para verificar si es un operador no pueda ingresar
    //la licencia.
    //PARAMETROS: usu: Usuario logueado
    //            conn: Conexion MySQL
    function obtenerDatosUsuario($usu, $conn) {
        //Obtengo si es admin o no
        $sql = "SELECT * FROM login WHERE usuario ='" . strtolower($usu) . "'";

        //Ejecuto la consulta
        $results = mysql_query($sql, $conn);

        //Verifico si se realizo la consulta bien
        if (!$results) {
            $mensaje = 'Error 1 al consultar los datos del usuario: ' . mysql_error() . "\n";
            die($mensaje);
        }

        //Creo el array
        $arr = mysql_fetch_assoc($results);

        //Tomo el valor
        $isAdmin = $arr['isadmin'];

        //-----------------------------
        //Obtengo si la licencia
        $sql2 = "SELECT * FROM socios WHERE apellido ='" . strtolower($usu) . "'";

        //Ejecuto la consulta
        $results2 = mysql_query($sql2, $conn);

        //Verifico si se realizo la consulta bien
        if (!$results2) {
            $mensaje = 'Error 2 al consultar los datos del usuario: ' . mysql_error() . "\n";
            die($mensaje);
        }
                
        //Creo el array
        $arr2 = mysql_fetch_assoc($results2);

        //Tomo el valor
        $lic = $arr2['licencia'];

        //Verifico si el usuario es un operador normal
        if ($isAdmin == 1) {
            $valorPerm = "true";
        } else {
            $valorPerm = "false";
        }

        //Devuelvo el usuario logueado
        $json = '{success:' . $valorPerm . ',usuario:[{"licencia":"' . $lic . '"}]}';

        //Retorno el JSON
        return $json;
    }

}

/* * ******************************************************************* */

//Instancio la clase
$obj = new acciones('no', 'no');

//Creo el objeto funciones
$objFunc = $obj->func();

//Conecto a MySql
$objConn = $obj->conn($objFunc);

//Verifico que usuario es o cargo el combo
if (isset($_POST['qusu']) || isset($_GET['myaction'])) {
    //Para cargar el combo
    if (isset($_GET['myaction'])) {
        $accion1 = $_GET['myaction'];
        //Cargo el combo club
        if ($accion1 == 'club') {
            //Cargo el combo
            $datos = $obj->cargacomboCLub($objConn);
            //Cargo los datos
            echo $datos;
        }
        //Cargo el combo categ
        if ($accion1 == 'categ') {
            //Cargo el combo
            $datos = $obj->cargacomboCateg($objConn);
            //Cargo los datos
            echo $datos;
        }
    }

    //Para obtener los datos del usuario
    if (isset($_POST['qusu'])) {
        $json = $obj->obtenerDatosUsuario($_POST['qusu'], $objConn);
        echo $json;
    }

    return 0;
} 

//Leo los valores
$licencia = $_POST['licencia'];
$apellido = $_POST['apellido'];
$ejemplar = $_POST['ejemplar'];
$categ = $_POST['categ'];
$club = $_POST['club'];

//Quito caracteres Especiales
$apellido = $objFunc->sacarAcentos($apellido);
$ejemplar = $objFunc->sacarAcentos($ejemplar);

//Verifico si es un concursante valido
$flag = $obj->verifConcursante($objConn, $licencia);

//Verifico si encontro registros
if ($flag == 1) {
    //Obtengo datos de la cuota del socio
    $flagCuota = $obj->pago();

    //Verifico si puede participar
    if ($flagCuota == 1) {
        /* Inserto los datos */
        $valor = $obj->insertar($objConn, $licencia, $apellido, $ejemplar, $categ, $club);

        //Cierro la conexión
        $obj->dess($objFunc, $objConn);

        header("location: ../php/FormConcurso.php?inserto=" . $valor);
    }
}
?>